我写了一个程序,我难过的时候,电脑会自动给我发猫猫的照片
The following article is from 大数据文摘 Author 文摘菌
本文转自:大数据文摘|BigDataDigest
作者:Caleb
最近,国内外糟心的事太多了,每天看得文摘菌郁郁寡欢。
每次这个时候,文摘菌都会去朋友家吸猫,吸着吸着就感觉神清气爽了,可谓一剂良药。
最近文摘菌发现,吸猫治愈这个事,还不是个例。
去年,日本一对夫妇就在推特上分享了自己的生活小窍门,其中一个就是生气的时候暂停存档,先吸猫平复一下心情再说,就像这样:
甚至有网友评论表示,吸猫有助于世界和平。
不过,吸猫虽好,可不要贪杯噢。
今年1月份的时候,就有一名女子因为吸猫患上了“鹦鹉热”。得了“鹦鹉热”的人大多是因为不小心吸入了鸟类干燥粪便中的衣原体,虽然吸猫不一定会有这样的“副作用”,但小心驶得万年船。
那么问题来了,有没有什么方法能够安全吸猫,最好能在心情抑郁的瞬间就能吸到猫呢?
最近,有个名叫Andrew Healey的博主就在博客上分享了自己做的一个项目,只要他在电脑前露出了伤心难过的表情,电脑就会立马给他发送猫猫的照片,雪中送炭不过如此了。
效果大概是这个样子:
好了好了,文摘菌知道很多人已经等不及了,我们现在就来看看这个项目到底是怎么完成的。
手把手教你“科学”吸猫
在吸猫之前,我们得让电脑知道我们现在很伤心,这样它才会给我们发猫猫照片。
在面部表情识别这块,Healey选择了开源的vladmandic/human,该数据库中提供了一个API来获取一些常见情绪的权重。
['sad', 'angry', 'disgust', 'fear', 'neutral', 'happy', 'surprise']
他将情绪简单地分为“好”与“坏”,这样对电脑来说会更容易区分和识别,同时系统会给每种情绪进行评分,总分在-1(非常差)和1(非常好)之间。
由于不想每次因为打喷嚏就随意触发系统运行,Healey还添加了一个3秒追踪平均值来评估当前的情绪。
在添加的调试控制台中,就能看到这些情绪分数,就像这样:
在系统发送一张猫猫照片之后,它也会进入5分钟的待机时间,然后才会重新开始工作。
Healey将所有前端代码写在一个index.html原型文件中,主循环以30-40 FPS的速度运行。
function main() {
const config = { backend: 'webgl' }
const human = new Human.Human(config)
async function detectVideo() {
// `inputVideo` is a video of a webcam stream
const result = await human.detect(inputVideo)
// `result` contains an array of faces along with emotion weights
handleResult(result)
requestAnimationFrame(detectVideo)
}
detectVideo()
}
第一步完成了,接下来我们要让电脑给我们发送猫猫照片。
在这里,Healey使用的是Pushover,该程序目前在程序员家庭自动化项目中还挺受欢迎的。
r = requests.post(
"https://api.pushover.net/1/messages.json",
data={
"token": token,
"user": user,
"message": f"{cat_name} needs your attention.",
},
files={"attachment": (f"{cat_name}", open(cat_picture, "rb"), "image/jpeg")},
)
随后,Healey将两个API粘合在一起以获取消息数据。随机名称来自网站randomuser。
网站地址:
https://randomuser.me/api/
随机猫猫照片:
https://api.thecatapi.com/v1/images/search
实际上,获得照片后还需要调整图像大小,因为Cat API致力于提供高分辨率的照片,通常能有5MB。
以下就是最终得到这个函数的方式:
def shrink_cat(path):
image = Image.open(path)
image.thumbnail((400, 400))
image.save(path)
Healey使用PythonSimpleHTTPRequestHandler来提供静态文件,这与one-liner提供文件时运行的服务器相同python -m http.server。
Healey的计划是不为此运行后端,虽然这仍然是一个可以实现的目标,但他发现用Python编写API粘合代码更快。当他意识到还需要一个API路由来处理“send cat”时,他正要安装Flask,但似乎可以......通过添加这个 hack 继续使用这个简单的服务器:
class HttpRequestHandler(http.server.SimpleHTTPRequestHandler):
# future employers, please look away
# while I override this function
def translate_path(self, path):
if path == "/web/cat.json":
send_cat()
return super().translate_path(path)
超越地域和文化,AI识别16种面部表情
说到面部识别,此前Nature就发表了一篇论文,证实了人类情感表达跨越地域和文化边界的普遍性。
论文链接:
为了研究这些表情,加州大学伯克利分校和谷歌的研究人员使用被称为“深度神经网络”的机器学习技术,分析了YouTube上约600万个视频片段中的面部表情,这些视频来自北美、中美、南美、非洲、欧洲、中东和亚洲的144个国家。
同时,研究人员还创建了一个在线互动地图,展示了该算法如何跟踪与16种情绪相关的面部表情变化,包括娱乐、愤怒、敬畏、专注、困惑、蔑视、满足、欲望、失望、怀疑、得意、兴趣、痛苦、悲伤、惊讶和胜利。
相关报道:
今日送书福利 《自然语言处理NLP从入门到项目实战:Python语言实现》本书内容通俗易懂,案例丰富,实用性强,特别适合使用Python语言人工智能自然语言处理的入门和进阶的读者阅读,也适合产品经理、人工智能研究者等对人工智能自然语言处理感兴趣的读者阅读。《CKA/CKAD应试指南:从Docker到Kubernetes完全攻略 官方作序推荐教材》本书适合想系统学习 docker 和 kubernetes,以及希望通过 CKA 和 CKAD 考试的读者学习使用。此外,本书中的许多案例还可以直接应用于生产环境。
《人工智能算法基础》本书从最基础的算法基础讲起,由浅入深,层层递进,在巩固固有知识的同时深入讲解人工智能的算法原理,立足于理论,从实例入手,将理论知识和实际应用结合,目标是让读者能够快速地熟悉人工智能中经典算法。
留言赠书参与方法
分享一下你喜欢以上书籍中的哪一本,以及平时工作学习积累的经验,或者分享关于这篇推文内容的个人理解,活动截止时会选出多名小锦鲤,中奖者可以获得上面的纸质书籍任选1本,免费包邮到家。
活动截止时间:2022年5月5日 16:00 整兑奖截止时间:2022年5月6日 16:00 整
今日送书福利 《自然语言处理NLP从入门到项目实战:Python语言实现》本书内容通俗易懂,案例丰富,实用性强,特别适合使用Python语言人工智能自然语言处理的入门和进阶的读者阅读,也适合产品经理、人工智能研究者等对人工智能自然语言处理感兴趣的读者阅读。《CKA/CKAD应试指南:从Docker到Kubernetes完全攻略 官方作序推荐教材》本书适合想系统学习 docker 和 kubernetes,以及希望通过 CKA 和 CKAD 考试的读者学习使用。此外,本书中的许多案例还可以直接应用于生产环境。
《人工智能算法基础》本书从最基础的算法基础讲起,由浅入深,层层递进,在巩固固有知识的同时深入讲解人工智能的算法原理,立足于理论,从实例入手,将理论知识和实际应用结合,目标是让读者能够快速地熟悉人工智能中经典算法。
分享一下你喜欢以上书籍中的哪一本,以及平时工作学习积累的经验,或者分享关于这篇推文内容的个人理解,活动截止时会选出多名小锦鲤,中奖者可以获得上面的纸质书籍任选1本,免费包邮到家。
活动截止时间:2022年5月5日 16:00 整兑奖截止时间:2022年5月6日 16:00 整